// const {EventEmitter} = require('events')

// const  ev = new EventEmitter()
// ev.on('event1',(arg)=>{
//     console.log('event1 1',arg)
// })
// ev.on('event1',(arg)=>{
//     console.log('event1 2',arg)
// })
// ev.emit('event1',133)

// ev.once('event2',()=>{
//     console.log('event2 1')
// })
// ev.emit('event2')
// ev.emit('event2')

// let cb = ()=>{
//     console.log('event3')
// }
// ev.on('event3',cb)
// ev.emit('event3')
// ev.off('event3',cb)
// ev.emit('event3')

function Event(){
    this._events = Object.create(null)
}
Event.prototype.on = function(type,cb){
    if(this._events[type]){
        this._events[type].push(cb)
    }else{
        this._events[type] = [cb]
    }
}
Event.prototype.emit = function(type,...args){
    if(this._events[type].length){
        this._events[type].forEach(cb=>cb.call(this,...args))
    }
}

const  ev = new Event()
ev.on('event1',(arg)=>{
    console.log('event1 1',arg)
})
ev.on('event1',(arg)=>{
    console.log('event1 2',arg)
})
ev.emit('event1',133)